#ifndef HUFFMANNODE_H
#define HUFFMANNODE_H

/**
 * @class HuffmanNode
 * @brief 表示哈夫曼树中的一个节点。
 *
 * 每个节点包含字符（适用于二进制文件的字节）、权重（用于构造哈夫曼树的依据），
 * 以及指向父节点、左子节点和右子节点的索引。
 */
class HuffmanNode {
public:
    unsigned char ch; // 字节（适用于二进制文件）
    long long weight;       // 权重
    int father;       // 父节点
    int lc;           // 左子节点
    int rc;           // 右子节点

    /**
     * @brief HuffmanNode 的构造函数。
     * 
     * 创建一个哈夫曼树节点，可以指定字符和权重，默认的字符为0，权重为0。
     *
     * @param character 节点的字符（字节形式），默认为 0。
     * @param wt 节点的权重，默认为 0。
     */
    HuffmanNode(unsigned char character = 0, long long wt = 0);
};

#endif // HUFFMANNODE_H
